This application is related to digital video data, and more particularly to buffer descriptor data structures between the decode and display processes in a decoder.
Video decoders decode a video bit-stream encoded according to a predetermined standard syntax, such as MPEG-2 or Advanced Video Compression (AVC). An encoder generating a compressed video bit-stream makes a number of choices for converting the video stream into a compressed video bit-stream that satisfies the quality of service and bit-rate requirements of a channel and media. However, decoders have limited choices while decoding the compressed bit stream. The decoder uses the decisions made by the encoder to decode and present pictures at the output screen with the correct frame rate at the correct times, and the correct spatial resolution.
Decoding can be partitioned in two processes—the decode process and the display process. The decode process parses through the incoming bit stream and decodes the bit stream to produce decode images which contain raw pixel data. The display process displays the decoded images onto an output screen at the proper time and at the correct and appropriate spatial and temporal resolutions as indicated in the display parameters received with the stream.
Some encoders, such as MPEG encoders, encode the time at which each decoded image is to be presented along with the compressed pixel data for the image. The spatial resolution of a picture, such as horizontal size and vertical size is also encoded along with the compressed pixel data of a picture. At the start of every sequence, the frame rate (temporal resolution) at which encoded images in the sequence are to be output onto the screen is indicated in the compressed bit stream. The decode process parses all of the foregoing parameters while decoding the compressed bit stream. While some of the information parsed during the decode process, such as horizontal and vertical picture sizes, are important only for the decode process, other parameters such as the presentation time and aspect ratio of the picture are to be used exclusively while displaying the picture. For example, MPEG-2 uses presentation time stamps to indicate the presentation time for an image on the display. In order for the display process to accomplish its objective of being able to present image buffers at their correct intended presentation time, the display process uses various parameters, including the presentation time stamp, parsed during the decode process. In some standards, such as MPEG-2 and AVC, the number of parameters can be quite large. Additionally, the decode process is also responsible for altering the configuration of the display hardware Alternatively, decode process is also responsible for detecting if a reconfiguration of display hardware will be necessary and making necessary preparations for it. if the display parameters such as displayable horizontal and vertical size, aspect ratio change before the pictures with changed parameters are processed by the display hardware.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art through comparison of such systems with embodiments presented in the remainder of the present application with reference to the drawings.